//package com.origin.learn.hadoop;
//
//import org.apache.hadoop.conf.Configuration;
//import org.apache.hadoop.fs.FileSystem;
//import org.apache.hadoop.fs.Path;
//import org.junit.Test;
//
//import java.util.*;
//
///**
// * @Description:
// * @Date: 2020/2/3
// * @Time: 15:24
// * @Created by:   dingtao
// * @Modified by:
// * @Modified at:
// */
//public class HdfsTest {
//    Configuration conf = null;
//    FileSystem fs = null;
//
//    private List<String> eventFields = new ArrayList<>();
//
//    @org.junit.Before
//    public void conn() throws Exception{
//        conf = new Configuration(false);
//        conf.set("fs.defaultFS", "hdfs://localhost:9000");
//        conf.set("dfs.replication", "1");
//        fs = FileSystem.get(conf);
//    }
//
//    @org.junit.After
//    public void close() throws Exception{
//        fs.close();
//    }
//
//    @Test
//    public void testConn(){
//        System.out.println(conf.get("fs.defaultFS"));
//    }
//
//    @Test
//    public void testUpload() throws Exception{
//        Path tmp = new Path("/temp");
//        if (!fs.exists(tmp)){
//            fs.mkdirs(tmp);
//        }
//        fs.copyFromLocalFile(new Path("pom.xml"), new Path("/temp/pom2.xml"));
//    }
//
//    @Test
//    public void testCal(){
//        List<Map<String, Object>> values = new LinkedList<>();
//        Map<String, Object> temp = new HashMap<>();
//        temp.put("key1", "value1");
//        temp.put("key2", "value2");
//        temp.put("key3", "value3");
//        temp.put("key4", "value4");
//        temp.put("key5", "value5");
//        values.add(temp);
//
//        Map<String, Object> temp1 = new HashMap<>();
//        temp1.put("key1", "value1");
//        temp1.put("key2", "value2");
//        temp1.put("key3", "value3");
//        temp1.put("key4", "value4");
//        temp1.put("key5", "value5");
//        values.add(temp1);
//
//        Map<String, Object> temp2 = new HashMap<>();
//        temp2.put("key1", "value1");
//        temp2.put("key2", "value2");
//        temp2.put("key3", "value3");
//        temp2.put("key4", "value4");
//        temp2.put("key5", "value5");
//        values.add(temp2);
//
//        Map<String, Object> temp3 = new HashMap<>();
//        temp3.put("key1", "value1");
//        temp3.put("key2", "value2");
//        temp3.put("key3", "value3");
//        temp3.put("key4", "value4");
//        temp3.put("key5", "value5");
//        values.add(temp3);
//
//        Map<String, Object> temp4 = new HashMap<>();
//        temp4.put("key1", "value1");
//        temp4.put("key2", "value2");
//        temp4.put("key3", "value3");
//        temp4.put("key4", "value4");
//        temp4.put("key5", "value5");
//        values.add(temp4);
//        eventFields.add("key6");
//        eventFields.add("key5");
//        eventFields.add("key4");
//        eventFields.add("key1");
//        eventFields.add("key2");
//        eventFields.add("key3");
//        eventFields.add("key55");
//        eventFields.add("key88");
//        String x = generateBatchInsertSQL("security_event", values);
//        System.out.println(x);
//
//    }
//
//    private String generateBatchInsertSQL(String indexName, List<Map<String, Object>> values){
//        StringBuilder stringBuilder = new StringBuilder();
//        stringBuilder.append("BATCHINSERT INTO ").append(indexName).append(" (");
//        for (int i = 0; i < eventFields.size(); i++) {
//            stringBuilder.append(eventFields.get(i));
//            if (i<eventFields.size()-1){
//                stringBuilder.append(", ");
//            }
//            else{
//                stringBuilder.append(" ) BATCHVALUES ( ");
//            }
//        }
////        Object[] keys = values.get(0).keySet().toArray();
////        for (int i = 0; i < keys.length; i++) {
////            stringBuilder.append(keys[i]);
////            if (i<keys.length-1){
////                stringBuilder.append(", ");
////            }
////            else {
////                stringBuilder.append(" ) BATCHVALUES ( ");
////            }
////        }
//        for (int i = 0; i < values.size(); i++) {
//            stringBuilder.append(generateInsertSQLString(values.get(i)));
//            if (i<values.size()-1){
//                stringBuilder.append(",");
//            }else {
//                stringBuilder.append(");");
//            }
//        }
//        return stringBuilder.toString();
//    }
//
//    /**
//     * 插入一条事件的插入语句
//     * @param value
//     * @return
//     */
//    private String generateInsertSQLString(Map<String, Object> value){
//        StringBuilder stringBuilder = new StringBuilder();
//        stringBuilder.append("VALUES (");
//        for (int i = 0; i < eventFields.size(); i++) {
//            String key = eventFields.get(i);
//            if (value.containsKey(key)){
//                stringBuilder.append(value.get(key)).append(",");
//            }else {
//                stringBuilder.append("'',");
//            }
//        }
////        value.forEach((k,v)->stringBuilder.append(v).append(","));
//        return stringBuilder.substring(0, stringBuilder.length()-1)+")";
//    }
//}
